package com.yupi.springbootinit.statemachine.rule;

import com.yupi.springbootinit.statemachine.core.StateContext;

/**
 * 业务规则接口
 * 定义状态转换的业务规则验证逻辑
 */
public interface BusinessRule {
    
    /**
     * 获取规则名称
     */
    String getRuleName();
    
    /**
     * 获取规则描述
     */
    String getDescription();
    
    /**
     * 验证业务规则
     * @param context 状态上下文
     * @return 验证结果
     */
    RuleValidationResult validate(StateContext context);
    
    /**
     * 获取规则优先级（数字越小优先级越高）
     */
    default int getPriority() {
        return 100;
    }
    
    /**
     * 规则是否启用
     */
    default boolean isEnabled() {
        return true;
    }
}